The present invention is related to the field of data storage systems.
The performance of data storage systems typically depends in part on the arrangement or configuration of the stored data. For example, data items that are heavily utilized are often distributed among multiple storage devices in the system to avoid “bottlenecks”, i.e., devices that have long service times for data accesses because of the quantity of requests they receive. System performance is generally improved when different file systems and databases that receive heavy concurrent use are stored on different storage devices within the system.
There are known techniques for improving storage system performance by selectively moving stored data within a system in a manner calculated to reduce the service times provided by devices within the system. In one such technique, statistical data is collected regarding the I/O accesses to logical volumes stored on disk drives within a storage system. This data is aggregated over many sub-intervals to obtain a measure of average access activity for each storage device within the system over a measurement interval that may span several days or longer. A pair of candidate disk drives and one or more pairs of potentially exchangeable logical volumes are then identified, and further processing is performed to determine whether the access activity of the disk drives can be improved by exchanging the logical volumes of one or more of the pairs between the two drives, i.e., by moving each volume of the pair from its present disk drive to the other disk drive. In particular, it is determined whether the access activity of a more heavily loaded disk drive will be reduced, and the access activity of a less heavily loaded disk drive will not be increased unduly, if the exchange of logical volumes is performed. If so, a swap operation is performed to actually carry out the exchange. This process can also be run on a single candidate disk drive where the exchanging of logical volume occurs on that single disk and is determined by whether the access activity of the disk drive will be reduced. This process is repeated at periodic measurement intervals to enable the system to continuously adjust to changing workloads and other factors affecting the pattern of disk activity.
In the above-described technique, access activity data for the entire measurement interval is included in the calculations of the access activity measures, and therefore the average access activity measure is an overall average for the measurement interval. In one variation, intermediate intervals denoted “performance time windows” can be utilized to restrict the periods of access activity data used for calculation. For example, if the periods of 9 AM to 6 PM of normal workdays are designated as “performance time windows”, then only data from such periods is analyzed. Device performance during other, non-critical periods is effectively ignored by the optimization process. The technique automatically arrives at an access activity measure for each disk drive that is based only on data accesses occurring during the performance time windows, and thus each measure more accurately reflects the performance of the corresponding disk drive when it is deemed to matter most.
Whether used with performance time windows or not, the above-described technique utilizes all of the access activity data that has been obtained in the relevant period. If performance time windows are not used, then for each device the average of all the access times over all the sub-intervals of the measurement period is calculated and utilized in selecting candidate disk drives for swapping volumes. When performance time windows are used, then the average of all the access times over the sub-intervals of the performance time window(s) is used. A technique which is similar to that described above is provided in U.S. Pat. No. 6,711,649 to Bachmat et al. entitled “Load Balancing on Disk Array Storage Device.”